package org.indi.graduatemanagement.entity;

import java.time.LocalDate;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;

import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * <p>
 *
 * </p>
 *
 * @author zcl
 * @since 2021-04-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("graduates")
@Accessors(chain = true)
public class Graduates implements Serializable {

    private static final long serialVersionUID = 1L;

    public Graduates() {
    }

    @NotBlank(message = "学号不能为空")
    @TableId(value = "graduates_ID")
    private String graduatesId;

    @NotBlank(message = "姓名不能为空")
    @TableField("graduates_name")
    private String graduatesName;

    @NotBlank(message = "性别不能为空")
    private String graduatesSex;

    private Integer graduatesAge;

    @NotBlank(message = "身份证号码不能为空")
    @TableField("graduates_Id_num")
    private String graduatesIdNum;

    @NotBlank(message = "电话号码不能为空")
    private String graduatesTelNum;

    @NotBlank(message = "学院不能为空")
    @TableField("graduates_college")
    private String graduatesCollege;

    @NotBlank(message = "专业不能为空")
    @TableField("graduates_major")
    private String graduatesMajor;

    @NotBlank(message = "班级不能为空")
    private String graduatesClass;

    @TableField("graduates_admDate")
    @NotNull(message = "入学时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate graduatesAdmDate;

    @TableField("graduates_graDate")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate graduatesGraDate;

    @TableField("graduates_birthday")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate graduatesBirthday;

    @NotNull(message = "是否在校信息不能为空")
    @TableField("graduates_inSchool")
    private Boolean graduatesInSchool;

    @NotNull(message = "民族信息不能为空")
    private String graduatesNation;

    @NotNull(message = "学籍层次不能为空")
    private String graduatesLevel;

    @NotNull(message = "学生类别不能为空")
    private String graduatesCategory;

    @NotNull(message = "培养方式不能为空")
    private String graduatesTrainMode;

    @NotNull(message = "学制不能为空")
    private Integer graduatesEducationSystem;

}
